<!--演示Object.definePropertity方法的含义及各属性的含义-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>

    <script type="text/javascript">
        Vue.config.productionTip = false
        let number = 1.88
        let person = {
            name:'zhangsan',
            age:18,
            sex:'男'
        }

        console.log("获取到person对象:",person)

        //给person对象中添加一个属性
        Object.defineProperty(person,'height',{
            //value: 1.73,
            enumerable: false, //控制属性不可以被枚举，Object.keys(person) 中并不包含height属性
            //writable: false,  //控制属性值不可以被修改 person.height=1.88 
            //configurable: false, //控制属性不可以被删除 控制台通过 delete person.height 

            get:function peiqi(){
                console.log("有人读取了height属性")
                return number  //在获取属性的时候才赋值
            },

            set:function sett(value){
                console.log("有人修改了height属性")
                number = value
            }
        })
        console.log(Object.keys(person))
        //测试枚举
        for (const key in person) {
           console.log("属性的key为:",person[key],key)
        }

    </script>
     
</body>
</html>